home *** CD-ROM | disk | FTP | other *** search
- // myLine.h
- //
- // Donated to the public domain; no restrictions on reuse or abuse apply.
- // by David Nugent, 7th June, 1993.
- // Simple line input class for istream to demonstrate input of a complete
- // line rather than whitespace separated tokens (the default for operator<<
- // for char* and other built-in types).
- // Works by overloading operator>> for a customised class - this functionality
- // is easily incorporated into your favourite String class
- //
-
- # if !defined(_myLine_h)
- # define _myLine_h 1
-
- # define AUTO_GROW 1 // Allow autogrowth of buffer to fit
- # define ALLOC_LEN 80 // Standard length & growth increment
-
- // Class declaration
-
- class myLine
- {
-
- public:
-
- myLine (short buflen =ALLOC_LEN);
- myLine (char * usebuf, short buflen =ALLOC_LEN);
- ~myLine (void);
- // Get buffer address
- char const * buf (void) const { return mybuf; }
- // Conversion operators
- char const * operator() (void) const { return mybuf; } // Explicit cast
- operator char const * (void) const { return mybuf; } // Implicit cast
- // istream operator>>
- friend istream & operator>> (istream &, myLine &);
-
- private:
-
- short len, xalloc;
- char * mybuf;
-
- };
-
- # endif // _myLine_h
-